The present invention relates to a processor and, more particularly, to a processor which executes a compressed program.
Conventionally, there has not existed a processor capable of decoding and executing a compressed instruction or operand data directly.
FIG. 5 shows an example of a conventional processor. The processor 501 comprises a bus input/output control unit 102 which controls input and output between the processor and an external bus, an instruction pre-fetch unit 503 which reads instructions from an external memory and performs processes such as cache-ing, an instruction decoder 504 which decodes the pre-fetched instruction, a micro control unit 505 which controls processes based on the decoded instruction, and an execution unit 506 which executes the instruction controlled by the micro control unit 505. The processor further comprises a memory management unit 108, an internal bus 113 used for storing the execution result in an external memory or the like, an address bus 109 for accessing to an external bus, a data bus 110, and a control bus 111. With the construction described above, the processor reads an instruction code stored in an external memory, and decodes and executes the instruction.
In a system which executes a program by loading it via a network, there is a need to store and transfer the program after compressing it for:
shortening time to transmit the program; and PA1 making the size of the program smaller. PA1 (1) high-speed and real-time execution of a compressed program; PA1 (2) high-speed loading of the program; PA1 (3) reducing capacity requirement of a storage memory; PA1 (4) reducing capacity requirement of a memory for execution; PA1 (5) reducing capacity requirement of a work memory for expansion; PA1 (6) reducing capacity requirement of a file; PA1 (7) increasing battery operation time by reducing consumption of electricity; PA1 (8) miniaturizing in size and weight, and reducing cost by composing the processor with a memory having smaller capacity, a file having smaller capacity, and by reducing consumption of electricity; and PA1 (9) executing both a compressed program and a non-compressed program. PA1 (1) high-speed and real-time execution of a compressed program; PA1 (2) high-speed loading of the program; PA1 (3) reducing capacity requirement of a storage memory; PA1 (4) reducing capacity requirement of a memory for execution; PA1 (5) reducing capacity requirement of a work memory for expansion; PA1 (6) reducing capacity requirement of a file; PA1 (7) increasing battery operation time by reducing consumption of electricity; PA1 (8) miniaturizing in size and weight, and reducing cost by composing the processor with a memory having smaller capacity, a file having smaller capacity, and by reducing consumption of electricity; and PA1 (9) executing both a compressed program and a non-compressed program.
One of the most famous compressing methods is the well-known Lempel-Ziv (LZ) coding method.
According to the LZ coding method, a computer or a terminal to execute a compressed program loads and expands the program, then executes it in the above-described processor.
After loading of the program, it is stored in a file server in the network in the expanded form, in a case where the program needs to be executed immediately.
Regarding a program stored in the processor, the size of the program has a tendency to expand, to improve a user interface and functions to a large capacity, and thus a memory having large capacity becomes necessary.
However, in the conventional computers and terminals for executing programs, processes of loading and expanding a compressed program can not be avoided to execute the program, and there is much inconvenience when real-time processing is taken into consideration. Further, to execute a program after expanding it, a work memory for expanding it is necessary beside the memory for loading, thus the required capacity of the memory has been increasing.
Furthermore, a program stored in the file server in the network can be executed immediately if it is stored in the non-compressed form; however, there arise problems such that more space of a disk of the file server is consumed, it takes a while to load the program, and a memory having large capacity is required in a computer or a terminal which execute the program.
Further, regarding the program stored in the processor, a memory having large capacity is necessary for improving a user interface and functions. Therefore, there is a problem that a memory of large capacity is necessary to provide convenient circumstances for a user. This prevents miniaturization in size and weight of the processor, and reduction of consumption of electricity by the processor, further prevents the reduction of cost of the processor.